//
//  VisitorTableViewController.swift
//  Weibo10
//
//  Created by male on 15/10/14.
//  Copyright © 2015年 itheima. All rights reserved.
//

import UIKit

class VisitorTableViewController: UITableViewController {

    /// 用户登录标记
    private var userLogon = false
    
 /// 全局的导航控制器
    private var navVc : UINavigationController? ;
    
    /**
        提问
        1. 应用程序中有几个 visitorView? - 每个控制器各自有各自不同的 访客视图！
        2. 访客视图如果用懒加载会怎样？- 如果使用懒加载，访客视图始终都会被创建出来！
    */
    /// 访客视图
    var visitorView: VisitorView?
    
    override func loadView() {
        
        // 根据用户登录情况，决定显示的根视图
        userLogon ? super.loadView() : setupVisitorView()
    }
    
    override func viewDidAppear(animated: Bool) {
        super.viewDidAppear(animated)
        
        print(visitorView)
    }
    
    /// 设置访客视图 - 让每一个`小`函数
    private func setupVisitorView() {
        // 替换根视图
        visitorView = VisitorView()
        
        view = visitorView
        
        //给view中的按钮添加事件
        visitorView?.loginButton.addTarget(self, action: "loginClick", forControlEvents: UIControlEvents.TouchUpInside)
        visitorView?.registerButton.addTarget(self, action: "registerClick", forControlEvents: UIControlEvents.TouchUpInside)
    }
    
    //登陆按钮被点击触发的事件
    @objc private func loginClick(){
        
        //创建控制器
        let loginVc = LoginViewController();
        
        //添加控制器到普通的导航控制器
        let navV = UINavigationController(rootViewController: loginVc);
        
        navVc = navV;
        //设置导航栏文字
        loginVc.navigationItem.title = "登陆"
        loginVc.navigationItem.leftBarButtonItem = UIBarButtonItem(title: "关闭", style: .Plain, target: self, action: "closeLogin");

        
        //跳转到控制器
        presentViewController(navVc!, animated: true, completion: nil)
    
    }
    
    //点击关闭登陆页面的按钮
    @objc private func closeLogin(){
    
        navVc!.dismissViewControllerAnimated(true, completion: nil)
    }
    
    @objc private func registerClick(){
        
        print("注册")

    }
}
